1. Field of the Invention
This invention relates generally to direct access storage devices and, more particularly, to skip-sector defect mapping in such devices.
2. Description of the Related Art
A computer direct access storage device (DASD), such as a magnetic disk drive, has one or more disk platters, each with a magnetizable layer on its surface. Digital data is recorded on a disk in the form of magnetic transitions spaced closely together. The disk surface area is divided into approximately equal-sized portions called sectors, which are further divided into blocks. Data is stored in a series of concentric or spiral tracks across the sectors of the disk.
Within a track, a sector includes a short servo track information area followed by a customer data area. The servo track information area typically includes a sector marker, track identification data, and a servo burst pattern, which are recorded at the time of disk manufacture and are used for positioning of a read/write head over the disk. The customer data area contains data recorded by a disk drive customer, or end user. Recording densities, both in terms of radial tracks per inch and linear density within a track, have reached a level that creates extreme sensitivity to imperfections such as media defects in the magnetizable recording layer. The media defects result in portions of the magnetizable media layer becoming unacceptable for use in recording the magnetic transitions.
One way of dealing with media defects is to perform a disk format operation at the time of DASD manufacture wherein surface analysis testing (SAT) identifies unacceptable, defective sectors and designates some sectors as spares. If additional good sectors become defective during subsequent operation of the DASD, then the defective sectors may be replaced by the spare sectors. In some conventional disk drives, an identification (ID) field is written on the disk prior to each sector during the format operation. The ID field contains specific information concerning the sector that follows, including a logical block address that identifies a cylinder, head, and sector that unambiguously identify the sector. A bit flag in the ID field identifies whether the sector is a defective sector or a spare sector. In this way, information about good sectors, bad sectors, and spare sectors will be known to the disk drive controller.
A technique to increase the capacity of disk drives is to use a no-ID format. This technique uses servo sectors in combination with a defect map to identify data sectors and completely eliminate the need for ID fields. The no-ID format frees up additional disk surface area for storage of customer data. In a no-ID disk drive, the logical block address (LBA) is the address of a logical block of storage that can be used by the disk drive customer. A physical block address (PBA) is the address of a physical block of storage on the disk. To store a block of data, the disk drive must perform a logical to physical address translation to take an LBA reference and derive the correct PBA from among the possible range of PBAs. The LBA-to-PBA conversion typically uses a defect map table that contains the defect information and is usually stored in memory of the DASD.
FIG. 1 illustrates the relationship between LBA and PBA. FIG. 1 shows a PBA column 102 that lists the physical block addresses (PBAs) distributed across a disk, and also shows an LBA column 104 that lists the logical block addresses (LBAs), which comprise the data blocks that are available for storage of customer data. The FIG. 1 configuration is provided for purposes of illustration only. Between the PBA column 102 and the LBA column 104 is an indication of the PBAs that are either spares or defects; spare blocks are designated by xe2x80x9cSxe2x80x9d and defect blocks are designated by xe2x80x9cXxe2x80x9d. The order of blocks in the PBA column 102 corresponds to the order of the blocks on the disk. The blocks in the LBA column 104 are numbered in the order of their availability to the disk user. Thus, it should be clear that the LBA column is numbered according to the PBA blocks, except that the S blocks and X blocks are skipped. As noted above, a reference from a data interface to an LBA must be translated into the proper PBA address to access the actual physical data stored on disk.
One way to implement the LBA-to-PBA translation is to define virtual tracks and virtual sectors, and to perform defect mapping with two tables, a virtual track (VT) table and a virtual sector (VS) table. A virtual track is defined as a contiguous set of data sectors that have a predetermined number of available sectors. Virtual tracks are numbered sequentially, regardless of their physical location. A virtual sector is defined as a sector that is not a spare sector or a defective sector and is contained within a virtual track. All virtual sectors within a virtual track are numbered sequentially.
FIG. 2 shows a received LBA 202 that is to be translated by a disk formatter or disk controller into a PBA that determines a disk drive cylinder, head, sector value for the data block referenced by the LBA. The disk formatter makes use of a VT table 204 that groups together LBAs having shared high order bits. The VT entries are index locations into a VS table 206 that lists the virtual skip sectors for all virtual tracks. That is, the index locations identify a group of skip sectors located on the virtual track corresponding to the index location. The skip sector entries in the VS table 206 pertain to skip sectors, which are sectors that are not available to store data, but are either defective sectors or spare sectors held for future use. For example, skip sectors in FIG. 1 are identified with either an xe2x80x9cXxe2x80x9d or an xe2x80x9cSxe2x80x9d, referring to defective sectors or spare sectors, respectively.
In the FIG. 2 example, the VT table 204 is indexed by virtual track number. The first entry in the VT table indicates that there are no skip sectors (either defect or spare) preceding the first track of the disk. The second entry in the VT table indicates that, for this example, two defect sectors precede the start of the second virtual track. Thus, the first virtual track includes two skip sectors. The next line in the VT table 204 indicates that a total of five sectors have been skipped before the third virtual track is reached. Thus, there must be three skip sectors in the second virtual track. Likewise, the third virtual track must not have any skip sectors because the number of skip sectors for the fourth virtual track is the same as for the third virtual track. That is, VT[3]=VT[4].
The VS table 206 shown in FIG. 2 contains the skip sectors that are pointed to by offsets from the entries in the VT table 204. That is, the first entry in the VT table is zero, so the disk controller will use a zero offset into the VS table, and therefore the PBA associated with the first skip sector in the VS table for virtual sectors in the first virtual track is the first entry in the VS table, which will be referred to as VS[0]. The second entry in the VT table 204 is a xe2x80x9c2xe2x80x9d and therefore the index of the first skip sector in the second virtual track is offset from the index of the first skip sector of the first virtual track by two. Thus, the disk formatter will step into the VS table 206 two lines following the VS[0] entry to point to the second following entry, and the first skip sector in the second virtual track is VS[2].
The VT table and VS table technique recognizes that the LBAs for neighboring defect blocks share most of their high order address bits, making redundant much of the information otherwise stored in a defect map. To reduce the amount of memory needed to store the defect map, the mostly redundant high order bits of the LBAs are used as indexes into the VT table 204, whose entries act as pointers to locations in the VS table 206. The entries in the VS table 206 contain only the low order LBA bits that correspond to the skip sector addresses. It is not necessary for the VS entries to contain the high order LBA bits, because the VT entries point to particular groups of sectors sharing common LBA high order bits. The VT table 204 is generated by constructing a list of the first LBA following a defect sector of a spare sector in the PBA range. For each virtual track, the VT table contains an entry that identifies the cumulative (total) number of skip sectors contained up to the start of that virtual track. Thus, the VT table 204 is indexed by the virtual track, and each entry indicates the cumulative number of skip sectors on the disk prior to that track.
To map a given LBA to a PBA, the high order bits of the given LBA (the virtual track number) are used to select an entry point into the VT table 204. Because the VS table 206 contains entries only for skip sectors and not for all virtual sectors, each VS table entry identifies the virtual sector number of the first good virtual sector in the virtual track identified by the VT table 204 following the skip. That is, the LBA would indicate the PBA, but for the presence of skip sectors. Therefore, it is necessary to add the cumulative number of skip sectors to the LBA to get the next available data sector.
When an LBA is received, the low order bits of the LBA are used to search the VS table 206 until a virtual sector entry is located that is greater than the value of the low order LBA bits. This index establishes the number of sector skips that must be performed to arrive at the correct virtual sector number for the given LBA. That is, an offset value that is equal to the offset into the VS table 206 is added to the LBA to produce the PBA value. The PBA is then used to derive the correct cylinder, head, and sector reference to the physical location of data stored on the disk. The calculation of the PBA may be represented by Equation (1) below:
PBA=FLBA+FIND(first S[p] greater than VS, where p less than =VT[FLBA] less than VT[FLBA+1]xe2x80x83xe2x80x83(1)
where FLBA corresponds to the file LBA, S[p] is the skip sector number entry in the VS table 206, VS is the virtual sector number, or the low order bits of the FLBA, and VT is the virtual track number of the current virtual track, so that the FIND function finds the first skip sector number (the index location) in the VS table that is greater than the low order bit value in the LBA, for the current virtual track.
An exemplary system using the VT and VS tables in a no-ID disk is described in U.K. patent GB 2 285 166 to Dobbek and Hetzler, which is assigned to the International Business Machines Corporation (IBM Corp.) and is incorporated herein by this reference. A defect management system using virtual tracks and virtual sectors, and defining a VT table and VS table, is efficient because it uses pointers to quickly determine the PBA value to locate a cylinder, head, and sector reference. Unfortunately, spare sectors account for a large percentage of the skips that must be stored in the VS table. In current disk drives, there can easily be four hundred spare sectors for every gigabyte of disk storage. In the next generation of disk drives, it is anticipated that the number of spare sectors per gigabyte could increase by a factor of ten. Each one of these skip sectors must have a VT/VS combination entry in the respective tables, which means that the size of these tables will significantly increase.
Disk defect management using VT and VS tables to perform LBA-to-PBA translation can be implemented relatively easily in software that is stored in program memory of the disk drive and typically is executed by the CPU or state machines of the disk drive formatter. It is anticipated that an increasing amount of defect management software will be located in firmware of the disk drive, because performance speed is increased and demand on disk drive resources is increased. This will place increased importance on reduced utilization of disk drive resources such as memory.
From the discussion above, it should be apparent that there is a need for a disk drive storage system that more efficiently utilizes storage system resources. The present invention solves this need.
The present invention provides a direct access storage device (DASD) that performs defect mapping and translates logical block address references to physical block addresses with a virtual track (VT) table and a virtual sector (VS) table, and also uses a prototype table (VSpr) that contains index locations for all virtual tracks that contain spares and identifies sectors located on the virtual tracks, and a reassign table (VSre) that contains exceptions from the prototype table due to reassignment of a spare sector. The VT table groups together LBAs having shared high order bits and contains pointers to index locations in the VS table, which contains index locations that identify a group of sectors located on the track corresponding to the index location, but does not include spares. Columns are added to the VT table to serve as pointers into the VSpr and VSre tables. In accordance with the invention, the overall size of the defect mapping tables is reduced by appropriately configuring the virtual tracks such that spare sectors can be removed from the VS table. This more efficiently utilizes storage system resources.
The prototype table VSpr is a prototype for all virtual tracks that contain spare locations within each virtual track, where a virtual track is defined as a contiguous set of data sectors that have a predetermined number of available sectors, and are numbered sequentially, regardless of their physical location. The prototype table VSpr entries are similar to entries in a conventional VS table, except that they are placed together in one table and refer to all virtual tracks. The reassignment table VSre is for sector reassignments, which occur at much lower rates than defects and spares. In this way, the tables included for defect mapping comprise a VT table, VS table, prototype table VSpr, and reassignment table VSre, and the total dedicated storage required for these tables is less than that needed for a conventional disk drive with conventional VT and VS tables. The columns added to the VT table may be referred to as the VTsp column or table, which contains prior spare blocks, and the VTre column or table, which contains VT reassign blocks. The VTsp table comprises the VT table before any reassigns have been performed, such that the VTsp table is a list of the cumulative number of spare blocks per track.
Other features and advantages of the present invention should be apparent from the following description of the preferred embodiment, which illustrates, by way of example, the principles of the invention.